5
תגובות
בעיה עם PHP ו-XML
פתח
yardsod
,
יש לי קובץ XML:
ובניתי פונקציה שמחזירה את ערך התג:
הבעיה היא שהפונקציה לא מחזירה כלום:
לא מחזיר כלום...
יש רעיונות?
<?xml version="1.0" encoding="utf-8"?>
<lang>
<settings>
<dir>ltr</dir>
</settings>
</lang>
<lang>
<settings>
<dir>ltr</dir>
</settings>
</lang>
ובניתי פונקציה שמחזירה את ערך התג:
public function getText($get){
$XMLFile = "assets/languages/".$this->currentLang."/site.xml";
$lang = new simpleXMLElement($XMLFile,null,true);
return $lang->$get;
}
$XMLFile = "assets/languages/".$this->currentLang."/site.xml";
$lang = new simpleXMLElement($XMLFile,null,true);
return $lang->$get;
}
הבעיה היא שהפונקציה לא מחזירה כלום:
$htmlSeo->getText("settings->dir")
לא מחזיר כלום...
יש רעיונות?
5 תשובות
@zacharya נראה לי שאתה צודק. בכל מקרה, הסיפור שונה. כשאתה כותב $lang->$get, המשתנה $get חייב להיות שם של מאפיין של המחלקה ב-$lang. אתה לא יכול להיכנס לזה עוד פנימה רקורסיבית. כתבתי דוגמת קוד להמחיש את זה.
@OrelBeY תודה רבה, הבנתי.
כבר חשבתי על משהו אחר שעובד:
class language{
public $currentLang = "en_US";
public function getSettingText($get){
$XMLFile = "assets/languages/".$this->currentLang."/site.xml";
$lang = new simpleXMLElement($XMLFile,null,true);
return $lang->settings->$get;
}
public function getStringText($get){
$XMLFile = "assets/languages/".$this->currentLang."/site.xml";
$lang = new simpleXMLElement($XMLFile,null,true);
return $lang->strings->$get;
}
}
$lngString = new language();
echo $lngString->getSettingText("dir");
echo $lngString->getStringText("Hello");
public $currentLang = "en_US";
public function getSettingText($get){
$XMLFile = "assets/languages/".$this->currentLang."/site.xml";
$lang = new simpleXMLElement($XMLFile,null,true);
return $lang->settings->$get;
}
public function getStringText($get){
$XMLFile = "assets/languages/".$this->currentLang."/site.xml";
$lang = new simpleXMLElement($XMLFile,null,true);
return $lang->strings->$get;
}
}
$lngString = new language();
echo $lngString->getSettingText("dir");
echo $lngString->getStringText("Hello");
מסתבר שאם אני שם רק מאפיין אחד זה עובד...